package com.common.jane_ai.controller;

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import reactor.core.publisher.Flux;

@RestController
@RequestMapping("/api")
public class ChatController {

    @Autowired
    @Qualifier("chatClient")
    private ChatClient chatClient;

    @RequestMapping(value="/chat",produces = "text/html;charset=utf-8")//浏览器会收到带 Content-Type: text/html;charset=utf-8 的响应，显示网页内容，不会乱码
    public Flux<String> chat(@RequestParam("prompt") String prompt){
        // 该方法通过一系列链式调用来构建和发送用户提示，并获取响应内容
        return chatClient.prompt() // 调用chatClient的prompt方法开始构建用户提示
                .user(prompt) // 设置用户提示的内容为prompt
                .stream() // 流式返回
                .content(); // 从响应对象中提取内容并返回
    }













}
